diff --git a/system/helpers/text_helper.php b/system/helpers/text_helper.php
index 4772602..b7ade7a 100644
--- a/system/helpers/text_helper.php
+++ b/system/helpers/text_helper.php
@@ -495,6 +495,48 @@
 	}
 }
  
+// ------------------------------------------------------------------------
+
+if ( ! function_exists('ellipsize'))
+{
+	/**
+	 * Ellipsize String
+	 *
+	 * This function will strip tags from a string, split it at its max_length and ellipsize
+	 *
+	 * @param 	string		string to ellipsize
+	 * @param	integer		max length of string
+	 * @param	mixed		int (1|0) or float, .5, .2, etc for position to split
+	 * @param 	string		ellipsis ; Default '...'
+	 * @return	string		ellipsized string
+	 */
+	function ellipsize($str, $max_length, $position = 1, $ellipsis = '&hellip;')
+	{
+		// Strip tags
+		$str = trim(strip_tags($str));
+
+		// Is the string long enough to ellipsize?
+		if (strlen($str) <= $max_length)
+		{
+			return $str;
+		}
+
+		$beg = substr($str, 0, floor($max_length * $position));
+
+		$position = ($position > 1) ? 1 : $position;
+
+		if ($position === 1)
+		{
+			$end = substr($str, 0, -($max_length - strlen($beg)));
+		}
+		else
+		{
+			$end = substr($str, -($max_length - strlen($beg)));
+		}
+
+		return $beg.$ellipsis.$end;	
+	}
+}
 
 /* End of file text_helper.php */
 /* Location: ./system/helpers/text_helper.php */
\ No newline at end of file
